home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 January / PCWorld_2007-01_cd.bin / v cisle / hotkey / AutoHotkey104504_Install.exe / AutoHotkey.chm / docs / scripts / volumeosd.ahk < prev    next >
Text File  |  2006-11-15  |  3KB  |  128 lines

  1. ; Volume On-Screen-Display (OSD) -- by Rajat
  2. ; http://www.autohotkey.com
  3. ; This script assigns hotkeys of your choice to raise and lower the
  4. ; master and/or wave volume.  Both volumes are displayed as different
  5. ; color bar graphs.
  6.  
  7. ;_________________________________________________ 
  8. ;_______User Settings_____________________________ 
  9.  
  10. ; Make customisation only in this area or hotkey area only!! 
  11.  
  12. ; The percentage by which to raise or lower the volume each time:
  13. vol_Step = 4
  14.  
  15. ; How long to display the volume level bar graphs:
  16. vol_DisplayTime = 2000
  17.  
  18. ; Master Volume Bar color (see the help file to use more
  19. ; precise shades):
  20. vol_CBM = Red
  21.  
  22. ; Wave Volume Bar color
  23. vol_CBW = Blue
  24.  
  25. ; Background color
  26. vol_CW = Silver
  27.  
  28. ; Bar's screen position.  Use -1 to center the bar in that dimension:
  29. vol_PosX = -1
  30. vol_PosY = -1
  31. vol_Width = 150  ; width of bar
  32. vol_Thick = 12   ; thickness of bar
  33.  
  34. ; If your keyboard has multimedia buttons for Volume, you can
  35. ; try changing the below hotkeys to use them by specifying
  36. ; Volume_Up, ^Volume_Up, Volume_Down, and ^Volume_Down:
  37. HotKey, #Up, vol_MasterUp      ; Win+UpArrow
  38. HotKey, #Down, vol_MasterDown
  39. HotKey, +#Up, vol_WaveUp       ; Shift+Win+UpArrow
  40. HotKey, +#Down, vol_WaveDown
  41.  
  42.  
  43. ;___________________________________________ 
  44. ;_____Auto Execute Section__________________ 
  45.  
  46. ; DON'T CHANGE ANYTHING HERE (unless you know what you're doing).
  47.  
  48. vol_BarOptionsMaster = 1:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBM% CW%vol_CW%
  49. vol_BarOptionsWave   = 2:B ZH%vol_Thick% ZX0 ZY0 W%vol_Width% CB%vol_CBW% CW%vol_CW%
  50.  
  51. ; If the X position has been specified, add it to the options.
  52. ; Otherwise, omit it to center the bar horizontally:
  53. if vol_PosX >= 0
  54. {
  55.     vol_BarOptionsMaster = %vol_BarOptionsMaster% X%vol_PosX%
  56.     vol_BarOptionsWave   = %vol_BarOptionsWave% X%vol_PosX%
  57. }
  58.  
  59. ; If the Y position has been specified, add it to the options.
  60. ; Otherwise, omit it to have it calculated later:
  61. if vol_PosY >= 0
  62. {
  63.     vol_BarOptionsMaster = %vol_BarOptionsMaster% Y%vol_PosY%
  64.     vol_PosY_wave = %vol_PosY%
  65.     vol_PosY_wave += %vol_Thick%
  66.     vol_BarOptionsWave = %vol_BarOptionsWave% Y%vol_PosY_wave%
  67. }
  68.  
  69. #SingleInstance
  70. SetBatchLines, 10ms
  71. Return
  72.  
  73.  
  74. ;___________________________________________ 
  75.  
  76. vol_WaveUp:
  77. SoundSet, +%vol_Step%, Wave
  78. Gosub, vol_ShowBars
  79. return
  80.  
  81. vol_WaveDown:
  82. SoundSet, -%vol_Step%, Wave
  83. Gosub, vol_ShowBars
  84. return
  85.  
  86. vol_MasterUp:
  87. SoundSet, +%vol_Step%
  88. Gosub, vol_ShowBars
  89. return
  90.  
  91. vol_MasterDown:
  92. SoundSet, -%vol_Step%
  93. Gosub, vol_ShowBars
  94. return
  95.  
  96. vol_ShowBars:
  97. ; To prevent the "flashing" effect, only create the bar window if it
  98. ; doesn't already exist:
  99. IfWinNotExist, vol_Wave
  100.     Progress, %vol_BarOptionsWave%, , , vol_Wave
  101. IfWinNotExist, vol_Master
  102. {
  103.     ; Calculate position here in case screen resolution changes while
  104.     ; the script is running:
  105.     if vol_PosY < 0
  106.     {
  107.         ; Create the Wave bar just above the Master bar:
  108.         WinGetPos, , vol_Wave_Posy, , , vol_Wave
  109.         vol_Wave_Posy -= %vol_Thick%
  110.         Progress, %vol_BarOptionsMaster% Y%vol_Wave_Posy%, , , vol_Master
  111.     }
  112.     else
  113.         Progress, %vol_BarOptionsMaster%, , , vol_Master
  114. }
  115. ; Get both volumes in case the user or an external program changed them:
  116. SoundGet, vol_Master, Master
  117. SoundGet, vol_Wave, Wave
  118. Progress, 1:%vol_Master%
  119. Progress, 2:%vol_Wave%
  120. SetTimer, vol_BarOff, %vol_DisplayTime%
  121. return
  122.  
  123. vol_BarOff:
  124. SetTimer, vol_BarOff, off
  125. Progress, 1:Off
  126. Progress, 2:Off
  127. return
  128.